tmuxで固まったペインを配置とディレクトリを維持しつつ再起動
どうも。CX事業本部Delivery部のえーたん(@eetann092)です。
筆者は今まで、tmuxでたまにペインが固まってしまう時、一度ペインを削除し手動で同じ配置とディレクトリのペインを作成していました。
respawn-pane
で同じ操作ができることを最近知ったため、紹介します。
respawn-paneを使ってみる
ペインを配置とディレクトリを維持しつつ再起動するtmuxのコマンドはrespawn-pane
です。
man tmux
で調べると以下のようなオプションが分かります。
respawn-pane [-k] [-c start-directory] [-e environment] [-t target-pane] [shell-command]
コマンド実行中にrespawn-pane
を使いたい場合は-k
オプションを指定する必要があるようです。
今回はディレクトリを維持したいので-c
オプションで変数#{pane_current_path}
も指定します(変数はman tmux
によるFORMATS
の欄でたくさん見ることができます)。
ペインを配置とディレクトリを維持しつつ再起動する手順は以下です。
- prefixに割り当てているキー(
C-b
など)を入力 :
を入力respawn-pane -k -c '#{pane_current_path}'
と入力- Enter
これだと長いので、筆者は.tmux.conf
に以下のようにキーバインドを設定しました。
prefix + Q
で実行できます。
bind Q respawn-pane -k -c '#{pane_current_path}'
実行前に確認を入れる
さらに、confirm-before
を使えばプロンプトで確認メッセージを表示させることができます。筆者の設定は以下です。
bind q confirm-before -p "respawn-pane? (y/others)" "respawn-pane -k -c '#{pane_current_path}'"
prefix + q
を入力すると、以下のようなtmuxのプロンプトが表示されます。
y
を入力したら最後に書いてあるコマンド(今回はrespawn-pane 〜
)が実行されます。